#ifndef __DO_RMAHDR_
#define __DO_RMAHDR_

#ifdef __cplusplus
  extern "C" {
#endif

typedef unsigned long UP;
typedef unsigned U;
typedef unsigned char UB;
typedef unsigned char scalar;
typedef struct vec32 vec32;
typedef unsigned short US;
typedef unsigned char SVAL;
typedef unsigned char TYPEB;
typedef struct qird QIRD;
typedef unsigned char UST_e;
typedef unsigned uscope_t;
typedef U  NumLibs_t;
struct vec32 {
    U  I1;
    U  I2;
};
typedef unsigned long RP;
typedef unsigned long RO;
typedef unsigned long long ULL;
typedef U  GateCount;
typedef U  NodeCount;
typedef unsigned short HsimEdge;
typedef unsigned char HsimExprChar;
typedef struct {
    U  I668;
    RP  I669;
} RmaReceiveClock1;
typedef NodeCount  FlatNodeNum;
typedef U  InstNum;
typedef unsigned long long TimeStamp64;
typedef unsigned long long TimeStamp;
typedef enum {
    PD_SING = 0,
    PD_RF = 1,
    PD_PLSE = 2,
    PD_PLSE_RF = 3,
    PD_NULL = 4
} PD_e;
typedef TimeStamp  RmaTimeStamp;
typedef TimeStamp64  RmaTimeStamp64;
typedef union {
    double I688;
    unsigned long long I689;
    unsigned  I690[2];
} rma_clock_struct;
typedef struct eblk EBLK;
typedef int (* E_fn)(void);
typedef struct eblk {
    struct eblk * I697;
    E_fn  I698;
    struct iptmpl * I699;
    unsigned I701;
    struct eblk * I702;
} eblk_struct;
typedef struct {
    RP  I697;
    RP  I698;
    RP  I699;
    unsigned I701;
    RP  I702;
} RmaEblk;
typedef union {
    double I688;
    unsigned long long I689;
    unsigned  I690[2];
} clock_struct;
typedef clock_struct  RmaClockStruct;
typedef struct RmaRetain_t RmaRetain;
struct RmaRetain_t {
    RP  I738;
    RmaEblk  I696;
    U  I739;
    US  I740 :1;
    US  I741 :4;
    US  I178 :2;
    US  state :2;
    US  I743 :1;
    US  I744 :2;
    US  I745 :2;
    US  fHsim :1;
    US  I550 :1;
    scalar  newval;
    scalar  I747;
    RP  I748;
};
typedef struct MPSched MPS;
typedef struct RmaMPSched RmaMps;
struct MPSched {
    MPS  * I728;
    scalar  I729;
    scalar  I730;
    scalar  I731;
    scalar  fHsim :1;
    scalar  I178 :6;
    U  I733;
    EBLK  I734;
    void * I735;
    UP   I736[1];
};
struct RmaMPSched {
    RP  I728;
    scalar  I729;
    scalar  I730;
    scalar  I731;
    scalar  fHsim :1;
    scalar  I178 :6;
    U  I733;
    RmaEblk  I734;
    RP  I735;
    RP   I736[1];
};
typedef struct RmaMPSchedPulse RmaMpsp;
struct RmaMPSchedPulse {
    RP  I728;
    scalar  I729;
    scalar  I730;
    scalar  I731;
    scalar  I178;
    U  I733;
    RmaEblk  I734;
    scalar  I745;
    scalar  I752;
    scalar  I753;
    scalar  I754;
    U  I755;
    RmaClockStruct  I756;
    RmaClockStruct  I757;
    U  state;
    U  I758;
    RP  I699;
    RP  I759;
    RP  I760;
    RP   I736[1];
};
typedef struct MPItem MPI;
struct MPItem {
    U  * I762;
    void * I763;
};
typedef struct {
    RmaEblk  I696;
    RP  I764;
    scalar  I765;
    scalar  I745;
    scalar  I766;
} RmaTransEventHdr;
typedef struct RmaMPSchedPulseNewCsdf RmaMpspNewCsdf;
struct RmaMPSchedPulseNewCsdf {
    RP  I728;
    scalar  I729;
    scalar  I730;
    scalar  I731;
    scalar  fHsim :1;
    scalar  I178 :6;
    U  I733;
    RmaEblk  I734;
    scalar  I745;
    scalar  I752;
    scalar  I753;
    scalar  I754;
    U  state :4;
    U  I768 :28;
    RmaClockStruct  I756;
    RmaClockStruct  I757;
    RP  I769;
    RP  I699;
    RP  I770;
    RP   I736[1];
};
typedef struct red_t {
    U  I771;
    U  I772;
    U  I651;
} RED;
typedef struct predd {
    PD_e  I178;
    RED   I773[0];
} PREDD;
union rhs_value {
    vec32  I774;
    scalar  I765;
    vec32  * I745;
    double I775;
    U  I776;
};
typedef struct nbs_t {
    struct nbs_t * I777;
    struct nbs_t * I779;
    void (* I780)(struct nbs_t * I781);
    unsigned I782 :1;
    unsigned I783 :1;
    unsigned I784 :1;
    unsigned I785 :1;
    unsigned I786 :27;
    U  I787;
    void * I788;
    union rhs_value I789;
    vec32  I688;
    union {
        struct nbs_t * first;
        struct nbs_t * last;
    } I791;
} NBS;
typedef struct {
    RP  I792;
    RP  I759;
    RP  I699;
    RP  I760;
    RmaEblk  I696;
    RmaEblk  I793;
    RP  I794;
    scalar  I765;
    scalar  I745;
    char state;
    uscope_t  I795;
    U  I796;
    RP  I797;
    scalar  I752;
    scalar  I753;
    scalar  I754;
    RmaClockStruct  I756;
    RmaClockStruct  I757;
    RP  I735;
} RmaPulse;
typedef struct {
    int * I798;
    long long I799;
} TypeData;
struct etype {
    U  I566 :8;
    U  I567 :24;
    U  I568;
    U  I569 :1;
    U  I570 :1;
    U  I571 :1;
    U  I572 :1;
    U  I573 :1;
    U  I574 :1;
    U  I575 :1;
    U  I576 :1;
    U  I577 :1;
    U  I578 :4;
    U  I579 :1;
    U  I580 :1;
    U  I581 :1;
    U  I582 :1;
    U  I583 :1;
    U  I584 :1;
    U  I585 :1;
    U  I586 :1;
    U  I587 :2;
    U  I588 :1;
    U  I589 :2;
    U  I590 :1;
    U  I591 :1;
    U  I592 :1;
    U  I593 :1;
    U  I594 :2;
    U  I595;
    TypeData  * I596;
    U  I597;
    U  I598;
    U  I599 :1;
    U  I600 :1;
    U  I601 :1;
    U  I602 :1;
    U  I603 :2;
    U  I604 :2;
    U  I605 :1;
    U  I606 :1;
    U  I607 :1;
    U  I608 :1;
    U  I609 :1;
    U  I610 :1;
    U  I611 :1;
    U  I612 :1;
    U  I613 :16;
};
typedef enum {
    QIRDModuleC = 1,
    QIRDSVPackageC = 2,
    QIRDSpiceModuleC = 3
} QIRDModuleType;
typedef struct {
    U  I803 :1;
    U  I804 :1;
    U  I805 :1;
    U  I806 :1;
    U  I807 :1;
    U  I808 :1;
    U  I809 :1;
    U  I810 :1;
    U  I811 :1;
    U  I812 :1;
    U  I813 :1;
    U  I814 :1;
    U  I815 :1;
    U  I816 :1;
    U  I817 :1;
    U  I818 :1;
    U  I819 :1;
    U  I820 :1;
    QIRDModuleType  I821 :2;
    U  I822 :1;
    U  I823 :1;
    U  I824 :1;
    U  I825 :1;
    U  I826 :1;
    U  I827 :1;
    U  I828 :1;
    U  I829 :1;
    U  I830 :1;
    U  I831 :1;
    U  I832 :1;
    U  I833 :1;
    U  I834 :1;
    U  I835 :1;
    U  I836 :1;
    U  I837 :1;
    U  I838 :1;
} BitFlags;
struct qird {
    US  I4;
    US  I5;
    U  I6;
    U  I7;
    char * I8;
    char * I9;
    U  * I10;
    char * I11;
    char * I12;
    U  I13;
    U  I14;
    struct vcd_rt * I15;
    U  I17;
    struct _vcdOffset_rt * I18;
    UP  * I20;
    U  I21;
    UP  * I22;
    U  I23;
    U  I24;
    U  I25;
    U  * I26;
    U  * I27;
    void * I28;
    void * I29;
    U  I30;
    int I31;
    UP  I32;
    U  I33;
    U  I34;
    U  I35;
    UP  I36;
    U  * I37;
    BitFlags  I38;
    U  I39;
    U  I40;
    U  I41;
    U  I42;
    U  I43;
    U  * I44;
    U  I45;
    U  * I46;
    U  I47;
    U  I48;
    U  I49;
    U  I50;
    U  I51;
    U  I52;
    U  I53;
    U  * I54;
    U  * I55;
    U  I56;
    U  I57;
    U  * I58;
    U  I59;
    U  * I60;
    U  I61;
    U  I62;
    U  I63;
    U  I64;
    U  * I65;
    U  I66;
    U  * I67;
    U  I68;
    U  I69;
    U  I70;
    U  I71;
    U  I72;
    U  I73;
    U  * I74;
    char * I75;
    U  I76;
    U  I77;
    U  I78;
    U  I79;
    U  I80;
    U  * I81;
    U  I82;
    U  I83;
    UP  * I84;
    U  I85;
    U  I86;
    UP  * I87;
    U  I88;
    U  I89;
    U  I90;
    U  I91;
    U  I92;
    U  I93;
    U  * I94;
    U  I95;
    U  I96;
    U  * I97;
    U  * I98;
    U  * I99;
    U  * I100;
    U  * I101;
    U  I102;
    U  I103;
    struct taskInfo * I104;
    U  I106;
    U  I107;
    int * I108;
    UP  * I109;
    U  * I110;
    U  I111;
    U  I112;
    U  I113;
    U  I114;
    U  I115;
    struct qrefer * I116;
    U  * I118;
    unsigned * I119;
    void * I120;
    U  I121;
    U  I122;
    struct classStaticReferData * I123;
    U  I125;
    U  * I126;
    U  I127;
    U  I128;
    U  I129;
    U  * I130;
    U  I131;
    U  * I132;
    U  I133;
    U  I134;
    U  I135;
    U  * I136;
    U  I137;
    U  * I138;
    U  I139;
    U  I140;
    U  * I141;
    U  I142;
    U  I143;
    U  * I144;
    U  * I145;
    U  * I146;
    U  I147;
    U  I148;
    U  I149;
    U  I150;
    U  I151;
    struct qrefee * I152;
    U  * I154;
    U  I155;
    struct qdefrefee * I156;
    U  * I158;
    int (* I159)(void);
    char * I160;
    U  I161;
    U  I162;
    void * I163;
    void * I164;
    NumLibs_t  I165;
    char * I166;
    U  * I167;
    U  I168;
    U  I169;
    U  I170;
    U  I171;
    U  I172;
    U  * I173;
    U  * I174;
    int I175;
    struct clock_load * I176;
    int I191;
    struct clock_data * I192;
    int I208;
    struct clock_hiconn * I209;
    U  I213;
    int I214;
    U  I215;
    int I216;
    U  * I217;
    U  * I218;
    U  I219;
    void * I220;
    U  I221;
    U  I222;
    UP  * I223;
    void * I224;
    U  I225;
    UP  * I226;
    U  * I227;
    int (* I228)(void);
    U  * I229;
    UP  * I230;
    U  * I231;
    U  I232 :1;
    U  I233 :31;
    U  I234;
    U  I235;
    UP  * I236;
    U  * I237;
    U  I238 :1;
    U  I239 :1;
    U  I240 :1;
    U  I241 :1;
    U  I242 :28;
    U  I243;
    U  I244;
    U  I245;
    U  I246 :31;
    U  I247 :1;
    UP  * I248;
    UP  * I249;
    U  * I250;
    U  * I251;
    U  * I252;
    UP  * I253;
    UP  * I254;
    UP  * I255;
    U  * I256;
    UP  * I257;
    UP  * I258;
    UP  * I259;
    char * I260;
    U  I261;
    U  I262;
    U  I263;
    UP  * I264;
    UP  * I265;
    UP  * I266;
    UP  * I267;
    UP  * I268;
    UP  * I269;
    UP  * I270;
    UP  * I271;
    UP  * I272;
    UP  * I273;
    UP  * I274;
    UP  * I275;
    UP  * I276;
    U  * I277;
    U  * I278;
    UP  * I279;
    U  I280;
    U  I281;
    U  I282;
    U  I283;
    U  I284;
    U  I285;
    U  I286;
    U  I287;
    char * I288;
    U  * I289;
    U  I290;
    U  I291;
    U  I292;
    U  I293;
    U  I294;
    UP  * I295;
    UP  * I296;
    UP  * I297;
    UP  * I298;
    struct daidirInfo * I299;
    struct vcs_tftable * I301;
    U  I303;
    UP  * I304;
    UP  * I305;
    U  I306;
    U  I307;
    U  I308;
    UP  * I309;
    U  * I310;
    struct qird_hil_data * I311;
    UP  (* I313)(void);
    UP  (* I314)(void);
    UP  (* I315)(void);
    UP  (* I316)(void);
    UP  (* I317)(void);
    int * I318;
    int (* I319)(void);
    char * I320;
    UP  * I321;
    UP  * I322;
    UP  (* I323)(void);
    int (* I324)(void);
    int * I325;
    int (* I326)(void);
    int * I327;
    char * I328;
    U  * I329;
    U  * I330;
    U  * I331;
    U  * I332;
    void * I333;
    U  I334;
    void * I335;
    U  I336;
    U  I337;
    U  I338;
    U  I339;
    U  I340;
    U  I341;
    UP  * I342;
    U  * I343;
    U  * I344;
    U  I345 :15;
    U  I346 :14;
    U  I347 :1;
    U  I348 :1;
    U  I349 :1;
    U  I350 :3;
    U  I351 :1;
    U  I352 :1;
    U  I353 :17;
    U  I354 :3;
    U  I355 :5;
    U  I356 :2;
    U  I357 :1;
    U  I358 :31;
    struct scope * I359;
    U  I361;
    U  I362;
    U  I363;
    U  * I364;
    U  * I365;
    U  * I366;
    U  I367;
    U  I368;
    U  I369;
    struct pcbt * I370;
    U  I380;
    U  I381;
    U  I382;
    U  I383;
    void * I384;
    void * I385;
    void * I386;
    int I387;
    U  * I388;
    U  I389;
    U  I390;
    U  I391;
    U  I392;
    U  I393;
    U  I394;
    U  I395;
    void * I396;
    UP  * I397;
    U  I398;
    U  I399;
    void * I400;
    U  I401;
    void * I402;
    U  I403;
    void * I404;
    U  I405;
    int (* I406)(void);
    int (* I407)(void);
    void * I408;
    void * I409;
    void * I410;
    U  I411;
    U  I412;
    U  I413;
    U  I414;
    U  I415;
    U  I416;
    char * I417;
    U  I418;
    U  * I419;
    U  I420;
    U  * I421;
    U  I422;
    U  I423;
    U  I424;
    U  I425;
    U  I426;
    U  I427;
    U  * I428;
    U  I429;
    U  I430;
    U  * I431;
    U  I432;
    U  I433;
    U  * I434;
    char * I435;
    U  I436;
    U  I437;
    U  I438;
    U  I439;
    U  * I440;
    U  * I441;
    U  I442;
    U  * I443;
    U  * I444;
    U  I445;
    U  I446;
    U  I447;
    U  I448;
    struct cosim_info * I449;
    U  I451;
    U  * I452;
    U  I453;
    void * I454;
    U  I455;
    U  * I456;
    U  I457;
    U  * I458;
    U  I459;
    U  I460;
    U  * I461;
    U  I462;
    U  * I463;
    U  I464;
    U  * I465;
    U  I466;
    U  I467;
    U  I468;
    U  I469;
    U  I470;
    U  I471;
    U  I472;
    U  I473;
    U  I474;
    U  * I475;
    U  * I476;
    void (* I477)(void);
    U  * I478;
    UP  * I479;
    struct mhdl_outInfo * I480;
    UP  * I482;
    U  I483;
    UP  * I484;
    U  I485;
    void * I486;
    U  * I487;
    void * I488;
    char * I489;
    int (* I490)(void);
    U  * I491;
    char * I492;
    char * I493;
    U  I494;
    U  * I495;
    char * I496;
    U  I497;
    struct regInitInfo * I498;
    UP  * I500;
    U  * I501;
    char * I502;
    U  I503;
    U  I504;
    U  I505;
    U  I506;
    U  I507;
    U  I508;
    U  I509;
    U  I510;
    UP  * I511;
    U  I512;
    U  I513;
    U  I514;
    U  I515;
    UP  * I516;
    U  I517;
    UP  * I518;
    U  I519;
    U  I520;
    U  I521;
    U  * I522;
    U  I523;
    U  I524;
    U  I525;
    U  * I526;
    U  * I527;
    UP  * I528;
    UP  * I529;
    void * I530;
    UP  I531;
    void * I532;
    void * I533;
    void * I534;
    void * I535;
    void * I536;
    UP  I537;
    U  * I538;
    U  * I539;
    void * I540;
    U  I541 :1;
    U  I542 :31;
    U  I543;
    U  I544;
    U  I545;
    int I546;
    U  I547 :1;
    U  I548 :1;
    U  I549 :1;
    U  I550 :29;
    void * I551;
    void * I552;
    void * I553;
    void * I554;
    UP  * I555;
    U  * I556;
    U  I557;
    char * I558;
    U  * I559;
    U  * I560;
    char * I561;
    int * I562;
    UP  * I563;
    struct etype * I564;
    U  I614;
    U  I615;
    U  I616;
    U  * I617;
    void * I618;
    U  I619;
    U  I620;
    void * I621;
    U  I622;
    U  I623;
    U  * I624;
    U  I625;
    U  * I626;
    U  I627;
    U  I628;
    U  * I629;
};
typedef struct pcbt {
    U  * I372;
    UP  I373;
    U  I374;
    U  I375;
    U  I376;
    U  I377;
    U  I378;
    U  I379;
} PCBT;
struct iptmpl {
    QIRD  * I703;
    struct vcs_globals_t * I704;
    void * I706;
    UP  I707;
    UP  I708;
    struct iptmpl * I699[2];
};
typedef unsigned long long FileOffset;
typedef struct _hsimPeriodL {
    char  I887[256];
    struct _hsimPeriodL * I843;
} HsimPeriodL;
typedef struct {
    U   I889[2];
    U  I890 :1;
    U  I891 :1;
    U  I892 :8;
    U  I893 :8;
    U  I894 :8;
    U  I895 :4;
    unsigned long long I896;
    unsigned long long I897;
    unsigned long long I898;
    unsigned long long I899;
    unsigned long long I900;
    U  I901;
    U  I902;
    U  I903;
    U  I904;
    HsimPeriodL  * I905;
    HsimPeriodL  * I906;
    U  I907;
} HsimSignalMonitor;
typedef struct {
    FlatNodeNum  I908;
    InstNum  I909;
    U  I851;
    scalar  I910;
    UB  I911;
    UB  I912;
    UB  I913;
    U  I914;
    U  I915;
    U  I916;
    U  I917;
    U  I918;
    HsimSignalMonitor  * I919;
    RmaTimeStamp64  I920;
    U  I921;
    RmaTimeStamp64  I922;
} HsimNodeRecord;
typedef struct {
    RP  I923;
    RP  I699;
} RmaIbfIp;
typedef struct {
    RP  I923;
    RP  pcode;
} RmaIbfPcode;
typedef struct {
    RmaEblk  I696;
} RmaEvTriggeredOrSyncLoadCg;
typedef struct {
    RmaEblk  I696;
    RP  I924;
} RmaAnySchedSampleSCg;
typedef struct {
    RmaEblk  I696;
    RP  I925;
    RP  I924;
    vec32  I926;
} RmaAnySchedVCg;
typedef struct {
    RmaEblk  I696;
    RP  I925;
    RP  I924;
    vec32   I744[1];
} RmaAnySchedWCg;
typedef struct {
    RmaEblk  I696;
    RP  I925;
    RP  I924;
    scalar   I927[1];
} RmaAnySchedECg;
typedef struct {
    RP  I928;
} RmaRootCbkCg;
typedef struct {
    RP  I929;
} RmaRootVcdCg;
typedef struct {
    RP  I930;
} RmaRootForceCbkCg;
typedef struct {
    RmaEblk  I696;
    RP  I931;
} RmaForceCbkJmpCg;
typedef struct {
    U  I5;
    U  I692 :30;
    U  I932 :1;
    U  I933 :1;
    vec32  I774;
    U  I934;
    RP  I935;
    RP  I936;
} RmaForceSelectorV;
typedef struct {
    U  I5;
    RmaIbfPcode  I942;
} RmaNetTypeDriverGate;
typedef struct {
    U  I5;
    U  I634;
    RmaIbfPcode   I942[1];
} RmaNetTypeScatterGate;
typedef struct {
    U  I5;
    RmaIbfPcode  I942;
} RmaNetTypeGatherGate;
typedef struct {
    RmaIbfPcode  I943;
    U  I944 :3;
    U  I945 :1;
    U  I946 :1;
    U  I947 :16;
} RmaNbaGateOfn;
typedef struct {
    NBS  I948;
    RmaIbfPcode  I943;
} RmaNbaGate1;
typedef struct {
    RP  ptable;
    RP  pfn;
    RP  pcode;
} Rma1InputGateFaninCgS;
typedef struct {
    U  I5;
    U  iinput;
    RP  I951;
} RmaCondOptLoad;
typedef struct {
    U  I5;
    U  iinput;
    RP  I951;
} RmaMacroStateUpdate;
typedef struct {
    U  I5;
    U  state;
    U  I952;
    U  * I953;
} RmaMacroState;
typedef struct {
    U  iinput;
    RP  I954;
} RmaMultiInputLogicGateCg;
typedef struct {
    U  iinput;
    RP  ptable;
    RP  I954;
} RmaSeqPrimEdgeInputCg;
typedef struct {
    RmaEblk  I696;
    RP  pcode;
} RmaSched0GateCg;
typedef struct {
    RmaEblk  I696;
    RP  pcode;
    RP  pfn;
} RmaUdpDeltaGateCg;
typedef struct {
    RmaEblk  I696;
    RP  pcode;
    RP  pfn;
    scalar  I955;
} RmaSchedDeltaGateCg;
typedef struct {
    UB  I956;
    RP  I957;
    RP  I958;
} RmaPropNodeSeqLhsSCg;
typedef struct {
    RmaEblk  I696;
    RP  pcode;
    U  I851;
    U   I685[1];
} RmaBitEdgeEblk;
typedef struct {
    U  I5;
    RP  I773;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaGateDelay;
typedef struct {
    U  I5;
    RP  I773;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaGateBehavioralDelay;
typedef struct {
    U  I5;
    union {
        RP  I1101;
        RP  I1363;
        RP  I1376;
    } I748;
    RmaIbfPcode  I943;
} RmaMPDelay;
typedef struct {
    U  I5;
    RmaPulse  I959;
    RmaIbfPcode  I943;
} RmaMPPulseHybridDelay;
typedef struct {
    U  I5;
    RmaIbfPcode  I943;
    RmaMps  I960;
} RmaMPHybridDelay;
typedef struct {
    U  I5;
    U  I961;
    RmaIbfPcode  I943;
    RmaEblk  I734;
} RmaMPHybridDelayPacked;
typedef struct {
    U  I5;
    RmaIbfPcode  I943;
    RmaMpspNewCsdf  I962;
} RmaMPPulseDelay;
typedef struct {
    U  I5;
    RmaMpsp  I962;
    RmaIbfPcode  I943;
} RmaMPPulseOptHybridDelay;
typedef struct _RmaBehavioralTransportDelay {
    U  I5;
    RP  I651;
    RmaTransEventHdr  I857;
    RP  I770;
    RmaIbfPcode  I943;
} RmaBehavioralTransportDelayS;
typedef struct {
    U  I5;
    U  I651;
    RmaTransEventHdr  I857;
    RP  I770;
    RmaIbfPcode  I943;
} RmaNtcTransDelay;
typedef struct {
    U  I5;
    U  I651;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaNtcTransMpwOptDelay;
typedef struct {
    U  I5;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaNtcTransZeroDelay;
typedef struct {
    U  I5;
    U  I963;
    U  I964;
    RmaTransEventHdr  I857;
    RP  I770;
    RmaIbfPcode  I943;
} RmaNtcTransDelayRF;
typedef struct {
    U  I5;
    U  I963;
    U  I964;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaNtcTransMpwOptDelayRF;
typedef struct {
    U  I5;
    RP  I965;
    RmaTransEventHdr  I857;
    RP  I770;
    RmaIbfPcode  I943;
} RmaICTransDelay;
typedef struct {
    U  I5;
    RP  I965;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaICTransMpwOptDelay;
typedef struct {
    U  I5;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaICTransZeroDelay;
typedef struct {
    U  I5;
    RP  I773;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaICSimpleDelay;
typedef struct {
    U  I5;
    union {
        RP  psimple;
        RP  I1363;
        RP  I1376;
    } I748;
    RmaIbfPcode  I943;
} RmaICDelay;
typedef struct {
    U  I5;
    RP  I773;
    RmaEblk  I696;
    RmaIbfPcode  I943;
} RmaPortDelay;
typedef struct {
    U  I5;
    RP   I966[(4)];
} RmaRtlXEdgesHdr;
typedef struct {
    U  I5;
    US  I967;
    US  I594;
    RP  I968;
    RP  I969;
    RP  I970;
} RmaRtlEdgeBlockHdr;
typedef struct {
    RP  I971;
    RP  I972;
} RemoteDbsedLoad;
typedef struct {
    RmaEblk  I696;
    US  I973;
    US  I594;
    U  I455;
    RP   I777[(4)];
    RP   I779[(4)];
    RemoteDbsedLoad   I974[1];
} RmaRtlEdgeBlock;
typedef struct TableAssign_ {
    struct TableAssign_ * I843;
    struct TableAssign_ * I764;
    U  I5;
    U  I976 :1;
    U  I977 :1;
    U  I978 :2;
    U  I979 :1;
    U  I668 :8;
    U  I594 :19;
    RP  ptable;
    RP  I954;
} TableAssign;
typedef struct {
    U  I5;
    RP  I764;
    RP  I980;
} RmaTableAssignList;
typedef struct {
    RP  I971;
} RmaWakeupListCg;
typedef struct {
    U  I981;
    U  I668;
    RmaTimeStamp   I982[1];
} RmaTsArray;
typedef struct {
    U  iinput;
    RP  I983;
} RmaConditionsMdb;
typedef struct {
    RP  I843;
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
} RmaTcCoreSimple;
typedef struct {
    RP  I843;
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I994;
} RmaTcCoreConditional;
typedef struct {
    RP  I843;
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I994;
    RP  I995;
} RmaTcCoreConditionalOpt;
typedef struct {
    RP  I843;
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I995;
    RP  I996;
    U  I997;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtc;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
} RmaTcCoreSimpleNoList;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I999;
} RmaTcCoreSimpleNoListMdb;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I994;
} RmaTcCoreConditionalNoList;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I994;
    RP  I995;
} RmaTcCoreConditionalOptNoList;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I995;
    RP  I996;
    U  I997;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtcNoList;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I995;
    RP  I996;
    RP  I999;
    U  I997;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtcNoListMdb;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    RP  I994;
    RP  I999;
} RmaTcCoreConditionalNoListMdb;
typedef struct {
    RP  I984;
    RP  I691;
    U  I985;
    scalar  I947;
    scalar  I986;
    US  I987 :1;
    US  I988 :1;
    US  I989 :1;
    US  I990 :1;
    US  I991 :1;
    US  I992 :1;
    US  I993 :5;
    U  I1000;
    RP  I1001;
    RP  I1002;
    RP  I994;
    RP  I1003;
    RP  I1004;
    RmaTimeStamp  I1005;
} RmaTcCoreNochange;
typedef struct {
    RP  I1006;
    RP  I843;
} RmaTcCoreNochangeList;
typedef struct {
    RP  I983;
    RmaTimeStamp  I1007;
    scalar  I1008;
} RmaConditionalTSLoadNoList;
typedef struct {
    RP  I843;
    RP  I983;
    RmaTimeStamp  I1007;
    scalar  I1008;
} RmaConditionalTSLoad;
typedef struct {
    RmaTimeStamp  I1007;
    scalar  I1008;
    US  I947;
    RP  I995;
} RmaConditionalTSLoadOptNoList;
typedef struct {
    RP  I843;
    RmaTimeStamp  I1007;
    scalar  I1008;
    US  I947;
    RP  I995;
} RmaConditionalTSLoadOpt;
typedef struct {
    RP  I995;
    RP  I1009;
    U  I997;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtcNoList;
typedef struct {
    RP  I999;
    RP  I995;
    RP  I1009;
    U  I997;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtcNoListMdb;
typedef struct {
    RP  I843;
    RP  I995;
    RP  I1009;
    U  I997;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtc;
typedef struct {
    U  I1010;
    U  I1011;
    FlatNodeNum  I1012;
    U  I851;
    U  I1013;
    U  I1014;
    RmaIbfPcode  I943;
    union {
        scalar  I1015;
        vec32  I1016;
        scalar  * I1017;
        vec32  * I1018;
    } val;
} RmaScanSwitchData;
typedef struct {
    RP  I843;
    RP  I764;
    RP  I1019;
} RmaDoublyLinkedListElem;
typedef struct {
    RP  I1020;
    U  I1021 :1;
    U  I1022 :1;
    U  I1023 :1;
    U  I1024 :4;
    U  I594 :25;
    U  I1025;
} RmaSwitchGateInCbkListInfo;
typedef struct {
    union {
        RmaDoublyLinkedListElem  I1409;
        RmaSwitchGateInCbkListInfo  I2;
    } I665;
    RmaIbfPcode  I943;
} RmaSwitchGate;
typedef struct RmaNonEdgeLoadData1_ {
    US  I1026;
    scalar  val;
    scalar  I178 :4;
    scalar  I1027 :1;
    scalar  I1028 :1;
    scalar  I1029 :1;
    scalar  I1030 :1;
    RP  I777;
    RP  I1031;
    RP  I1012;
    RP  I1032;
    RP  I1033;
} RmaNonEdgeLoadData1;
typedef struct RmaNonEdgeLoadHdr1_ {
    UB  I1034;
    UB  I1035;
    RmaNonEdgeLoadData1  * I966;
    RmaNonEdgeLoadData1  * I764;
} RmaNonEdgeLoadHdr1;
typedef struct RmaChildClockProp_ {
    RP  I777;
    RP  I1036;
    RP  I1012;
    RP  pcode;
    scalar  val;
} RmaChildClockProp;
typedef struct RmaChildClockPropList1_ {
    RmaChildClockProp  * I966;
    RmaChildClockProp  * I764;
} RmaChildClockPropList1;
typedef struct {
    U  I5;
    U  I1037;
} RmaHDLCosimDUTGate;
struct clock_load {
    U  I178 :5;
    U  I179 :12;
    U  I180 :1;
    U  I181 :2;
    U  I182 :1;
    U  I183 :1;
    U  I184 :1;
    U  I185 :9;
    U  I186;
    U  I187;
    void (* pfn)(void * I189, char val);
};
typedef struct clock_data {
    U  I194 :1;
    U  I195 :1;
    U  I196 :1;
    U  I197 :1;
    U  I178 :5;
    U  I179 :12;
    U  I198 :6;
    U  I199 :1;
    U  I181 :2;
    U  I182 :1;
    U  I185 :1;
    U  I200;
    U  I201;
    U  I202;
    U  I186;
    U  I203;
    U  I204;
    U  I205;
    U  I206;
    U  I207;
} HdbsClockData;
struct clock_hiconn {
    U  I211;
    U  I212;
    U  I186;
    U  I181;
};
typedef struct _RmaDaiCg {
    RP  I1038;
    RP  I1039;
    U  I1040;
} RmaDaiCg;
typedef union _RmaCbkMemOptUnion {
    RP  I1038;
    RP  I1041;
    RP  I1042;
} RmaCbkMemOptUnion;
typedef struct _RmaDaiOptCg {
    RmaCbkMemOptUnion  I1043;
} RmaDaiOptCg;
struct futq_slot2 {
    U  I726;
    U   I727[32];
};
struct futq_slot1 {
    U  I723;
    struct futq_slot2  I724[32];
};
struct futq_info {
    U  I719;
    U  I720;
    struct futq_slot1  I721[32];
};
struct futq {
    struct futq * I709;
    struct futq * I711;
    RmaEblk  * I712;
    RmaEblk  * I713;
    U  I701;
};
struct sched_table {
    struct futq * I714;
    struct futq I715;
    struct hash_bucket * I716;
    struct hash_bucket * I718;
};
struct dummyq_struct {
    clock_struct  I1047;
    EBLK  * I1048;
    EBLK  * I1049;
    struct futq * I1050;
    struct futq * I1051;
    struct futq * I1052;
    struct sched_table * I1053;
    struct futq_info * I1055;
    U  I1057;
    U  I1058;
    U  I1059;
    struct millenium * I1060;
    EBLK  * I1062;
    EBLK  * I1063;
    EBLK  * I1064;
    EBLK  * I1065;
    EBLK  * I1066;
    EBLK  * I1067;
    EBLK  * I1068;
    EBLK  * I1069;
    EBLK  * I1070;
    EBLK  * I1071;
    EBLK  * I1072;
    EBLK  * I1073;
    EBLK  * I1074;
    EBLK  * I1075;
    EBLK  * I1076;
    EBLK  * I1077;
    EBLK  * I1078;
    EBLK  * I1079;
    MPS  * I1080;
};
typedef void (* FP)(void *  , scalar   );
typedef void (* FP1)(void *  );
typedef void (* FPRAP)(void *  , vec32  *  , U   );
typedef U  (* FPU1)(void *  );
typedef void (* FPV)(void *  , UB  *  );
typedef void (* FPVU)(void *  , UB  *  , U   );
typedef void (* FPLSEL)(void *  , scalar   , U   );
typedef void (* FPLSELV)(void *  , vec32  *  , U   , U   );
typedef void (* FPFPV)(UB  *  , UB  *  , U   , U   , U   , U   , U   , UB  *  , U   );
typedef void (* FPFA)(UB  *  , UB  *  , U   , U   , U   , U   , U   , U   , UB  *  , U   );
typedef void (* FPRPV)(UB  *  , U   , U   , U   );
typedef void (* FPEVCDLSEL)(void *  , scalar   , U   , UB  *  );
typedef void (* FPEVCDLSELV)(void *  , vec32  *  , U   , U   , UB  *  );
typedef void (* FPNTYPE_L)(void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_H)(void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_LPAP)(void *  , void *  , void *  , U   , U   , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_HPAP)(void *  , void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef struct _lqueue {
    EBLK  * I697;
    EBLK  * I1081;
    int I1082;
    struct _lqueue * I738;
} Queue;
typedef struct {
    EBLK  I1084;
    U  I1085;
    union {
        void * pHeap;
        Queue  * pList;
    } I665;
    Queue   I1086[1];
} Qhdr;
extern UB   Xvalchg[];
extern UB   X4val[];
extern UB   X3val[];
extern UB   X2val[];
extern UB   XcvtstrTR[];
extern UB   Xcvtstr[];
extern UB   Xbuf[];
extern UB   Xbitnot[];
extern UB   Xwor[];
extern UB   Xwand[];
extern U   Xbitnot4val[];
extern UB   globalTable1Input[];
extern unsigned long long vcs_clocks;
extern UB   Xunion[];
extern U  fRTFrcRelCbk;
extern FP  txpFnPtr;
extern FP   rmaFunctionArray[];
extern FP   rmaFunctionRtlArray[];
extern FP   rmaFunctionLRArray[];
extern U  rmaFunctionCount;
extern U  rmaFunctionLRCount;
extern U  rmaFunctionLRDummyCount;
extern UP  rmaFunctionDummyEndPtr;
extern UB  dummyScalar;
extern UB  fScalarIsForced;
extern UB  fScalarIsReleased;
extern U  fNotimingchecks;
extern RP  * iparr;
extern FP1  * rmaPostAnySchedFnPtr;
extern FP1  * rmaPostAnySchedFnSamplePtr;
extern FP1  * rmaPostAnySchedVFnPtr;
extern FP1  * rmaPostAnySchedWFnPtr;
extern FP1  * rmaPostAnySchedEFnPtr;
extern FP1  * rmaPostSchedUpdateClockStatusFnPtr;
extern FP1  * rmaPostSchedUpdateClockStatusNonCongruentFnPtr;
extern FP1  * rmaPostSchedUpdateEvTrigFnPtr;
extern FP1  * rmaSched0UpdateEvTrigFnPtr;
extern FP1  * rmaPostSchedRecoveryResetDbsFnPtr;
extern U  fGblDataOrTime0Prop;
extern UB   rmaEdgeStatusValArr[];
extern FP1  * propForceCbkSPostSchedCgFnPtr;
extern FP1  * propForceCbkMemoptSPostSchedCgFnPtr;
extern UB  * ptableGbl;
extern UB  * expandedClkValues;
extern US   xedges[];
extern Qhdr  * lvlQueue;
extern U  mhdl_delta_count;
extern U  ignoreSchedForScanOpt;
extern U  fignoreSchedForDeadComboCloud;
extern int fZeroUser;
extern U  fEveBusPullVal;
extern U  fEveBusPullFlag;
extern UB  fNettypeIsForced;
extern UB  fNettypeIsReleased;
extern EBLK  * peblkFutQ1Head;
extern EBLK  * peblkFutQ1Tail;
extern US  * edgeActionT;
extern unsigned long long * derivedClk;
extern U  fHashTableSize;
extern U  fLoopDetectMode;
extern int gFLoopDectCodeEna;
extern U  fLoopReportRT;


extern void *mempcpy(void* s1, void* s2, unsigned n);
extern UB* rmaEvalDelays(UB* pcode, scalar val);
extern UB* rmaEvalDelaysV(UB* pcode, vec32* pval);
extern void rmaPopTransEvent(UB* pcode);
extern void rmaSetupFuncArray(UP* ra, U c, U w);
extern void rmaSetupRTLoopReportPtrs(UP* funcs, UP* rtlFuncs, U cnt, U cntDummy, UP end);
extern void SinitHsimPats(void);
extern void VVrpDaicb(void* ip, U nIndex);
extern int SDaicb(void *ip, U nIndex);
extern void SDaicbForHsimNoFlagScalar(void* pDaiCb, unsigned char value);
extern void SDaicbForHsimNoFlagStrengthScalar(void* pDaiCb, unsigned char value);
extern void SDaicbForHsimNoFlag(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimNoFlag2(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimWithFlag(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimNoFlagFrcRel(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx);
extern void SDaicbForHsimNoFlagFrcRel2(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx);
extern void VcsHsimValueChangeCB(void* pRmaDaiCg, void* pValue, unsigned int valueFormat);
extern U isNonDesignNodeCallbackList(void* pRmaDaiCg);
extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void VVrpNonEventNonRegdScalarForHsimOptCbkMemopt(void* ip, U nIndex);
extern void SDaicbForHsimCbkMemOptNoFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptNoFlagDynElabFrcRel(U* mem, unsigned char reason, int msb, int lsb, int ndx);
extern void SDaicbForHsimCbkMemOptNoFlagFrcRel(void* pDaiCb, unsigned char reason, int msb, int lsb, int ndx);
extern void hsimDispatchCbkMemOptForVcd(RP p, U val);
extern void* hsimGetCbkMemOptCallback(RP p);
extern void hsimDispatchCbkMemOptNoDynElabS(RP* p, U val, U isStrength);
extern void* hsimGetCbkPtrNoDynElab(RP p);
extern void hsimDispatchCbkMemOptDynElabS(U** pvcdarr, U** pcbkarr, U val, U isScalForced, U isScalReleased, U isStrength);
extern void hsimDispatchCbkMemOptNoDynElabVector(RP* /*RmaDaiOptCg* */p, void* pval, U /*RmaValueType*/ vt, U cbits);
extern void copyAndPropRootCbkCgS(RmaRootCbkCg* pRootCbk, scalar val);
extern void copyAndPropRootCbkCgV(RmaRootCbkCg* rootCbk, vec32* pval);
extern void copyAndPropRootCbkCgW(RmaRootCbkCg* rootCbk, vec32* pval);
extern void copyAndPropRootCbkCgE(RmaRootCbkCg* rootCbk, scalar* pval);
extern void dumpRootVcdCg(RmaRootVcdCg* pRootVcd, scalar val);
extern void Wsvvar_callback_non_dynamic1(RP* ptr, int);
extern void rmaExecEvSyncList(RP plist);
extern void Wsvvar_callback_virt_intf(RP* ptr);
extern void Wsvvar_callback_hsim_var(RP* ptr);
extern void checkAndConvertVec32To2State(vec32* value, vec32* svalue, U cbits, U* pforcedBits);
extern unsigned int fGblDataOrTime0Prop;
extern void SchedSemiLerMP1(UB* pmps, U partId);
extern void SchedSemiLerMPO(UB* pmpso, U partId);
extern void rmaDummyPropagate(void);
extern RP rmaTestCg(RP pcode, U vt, UB* value);
extern void hsUpdateModpathTimeStamp(UB* pmps);
extern void doMpd32One(UB* pmps);
extern void doMpdCommon(MPS* pmps);
extern TimeStamp GET_DIFF_DELAY_FUNC(TimeStamp ts);
extern void SchedSemiLerMP(UB* ppulse, U partId);
extern EBLK *peblkFutQ1Head;
extern EBLK *peblkFutQ1Tail;
extern void scheduleuna(UB *e, U t);
extern void scheduleuna_mp(EBLK *e, unsigned t);
extern void schedule(UB *e, U t);
extern void sched_hsopt(struct dummyq_struct * pQ, EBLK *e, U t);
extern void sched_millenium(struct dummyq_struct * pQ, void *e, U thigh, U t);
extern void schedule_1(EBLK *e);
extern void sched0(UB *e);
extern void sched0Raptor(UB *e);
extern void sched0lq(UB *e);
extern void sched0lqnc(EBLK *e);
extern void sched0una(UB *e);
extern void sched0una_th(struct dummyq_struct *pq, UB *e);
extern void hsopt_sched0u_th(struct dummyq_struct *pq, UB *e);
extern void scheduleuna_mp_th(struct dummyq_struct *pq, EBLK *e, unsigned t);
extern void schedal(UB *e);
extern void sched0_th(struct dummyq_struct * pQ, EBLK *e);
extern void sched0u(UB *e);
extern void sched0u_th(struct dummyq_struct *pq, UB *e);
extern void sched0_hsim_front_th(struct dummyq_struct * pQ, UB *e);
extern void sched0_hsim_frontlq_th(struct dummyq_struct * pQ, UB *e);
extern void sched0lq_th(struct dummyq_struct * pQ, UB *e);
extern void schedal_th(struct dummyq_struct * pQ, UB *e);
extern void scheduleuna_th(struct dummyq_struct * pQ, void *e, U t);
extern void schedule_th(struct dummyq_struct * pQ, UB *e, U t);
extern void schedule_1_th(struct dummyq_struct * pQ, EBLK *peblk);
extern void SetupLER_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLer_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLerTXP_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLerTXPFreeVar_th(struct dummyq_struct * pQ, EBLK *e);
extern U getVcdFlags(UB *ip);
extern void VVrpNonEventNonRegdScalarForHsimOpt(void* ip, U nIndex);
extern void VVrpNonEventNonRegdScalarForHsimOpt2(void* ip, U nIndex);
extern void SchedSemiLerTBReactiveRegion(struct eblk* peblk);
extern void SchedSemiLerTBReactiveRegion_th(struct eblk* peblk, U partId);
extern void SchedSemiLerTr(UB* peblk, U partId);
extern void SchedSemiLerNBA(UB* peblk, U partId);
extern void NBA_Semiler(void *ip, void *pNBS);
extern void sched0sd_hsim(UB* peblk);
extern void appendNtcEvent(UB* phdr, scalar s, U schedDelta);
extern void appendTransEventS(RmaTransEventHdr* phdr, scalar s, U schedDelta);
extern void schedRetainHsim(MPS* pMPS, scalar sv, scalar pv);
extern void updateRetainHsim(MPS* pMPS,scalar sv, scalar pv);
extern void hsimRegisterEdge(void* sm,  scalar s);
extern U pvcsGetPartId();
extern void HsimPVCSPartIdCheck(U instNo);
extern void debug_func(U partId, struct dummyq_struct* pQ, EBLK* EblkLastEventx); 
extern struct dummyq_struct* pvcsGetQ(U thid);
extern EBLK* pvcsGetLastEventEblk(U thid);
extern void insertTransEvent(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, int re, UB* predd, U fpdd);
extern void insertNtcEventRF(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, U* delays);
extern U doTimingViolation(RmaTimeStamp ts,RP* pdata, U fskew, U limit, U floaded, U fcondopt, RmaTimeStamp tsNochange);
extern void sched_gate_hsim(EBLK* peblk, unsigned t, RP* offset);
extern int getCurSchedRegion();
extern FP getRoutPtr(RP, U);
extern U rmaChangeCheckAndUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits);
extern void rmaUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits);
extern U rmaChangeCheckAndUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaLhsPartSelUpdateE(scalar* pvalDst, scalar* pvalSrc, U index, U width);
extern void rmaUpdateWithForceSelectorE(scalar* pvalDst, scalar* pvalSrc, U cbits, U* pforceSelector);
extern void rmaUpdateWFromE(vec32* pvalDst, scalar* pvalSrc, U cbits);
extern U rmaLhsPartSelWithChangeCheckE(scalar* pvalDst, scalar* pvalSrc, U index, U width);
extern void rmaLhsPartSelWFromE(vec32* pvalDst, scalar* pvalSrc, U index,U width);
extern U rmaChangeCheckAndUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits);
extern U rmaLhsPartSelWithChangeCheckW(vec32* pvalDst, vec32* pvalSrc, U index,U width);
extern void rmaLhsPartSelEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width);
extern U rmaLhsPartSelWithChangeCheckEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width);
extern void rmaLhsPartSelUpdateW(vec32* pvalDst, vec32* pvalSrc, U index, U width);
extern void rmaEvalWunionW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalWorW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalWandW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalUnionE(scalar* dst, scalar* src, U cbits, U count, RP ptable);
typedef U RmaCgFunctionType;
extern RmaIbfPcode* rmaEvalPartSelectsW(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern RmaIbfPcode* rmaEvalPartSelectsWLe32(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern RmaIbfPcode* rmaEvalPartSelectsWToE(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern RmaIbfPcode* rmaEvalPartSelectsEToE(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus);
extern RmaIbfPcode* rmaEvalPartSelectsEToW(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern U rmaEvalBitPosEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitNegEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitChangeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U VcsForceVecVCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U/*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecVCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecWCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecWCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecECg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecACg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecCg(UB* pcode, UB* pvDst, U ibeginDst, U width, U /*RmaValueType*/ type,U fisRoot, UB* prhsDst, U frhs, U* pforcedbits);
extern U VcsDriveBitsAndDoChangeCheckV(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern U VcsDriveBitsAndDoChangeCheckW(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern U VcsDriveBitsAndDoChangeCheckE(scalar* pvSel, scalar* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern void cgvecDebug_Eblk(UB* pcode);
extern U rmaCmpW(vec32* pvalDst, vec32* pvalSrc, U index, U width);
extern void copyVec32ArrMask(vec32* pv1, vec32* pv2, U len, U* mask);
extern void* memcpy(void*, const void*, size_t);
extern int memcmp(const void*, const void*, size_t);
extern void propagateScanOptPathVal(EBLK *peblk);
extern UB* rmaProcessScanSwitches(UB* pcode, scalar val);
extern UB* rmaProcessScanSwitchesV(UB* pcode, vec32 *pval);
extern UB* rmaProcessScanoptDump(UB* pcode, scalar val);
extern UB* rmaProcessScanoptDumpV(UB* pcode, vec32 *pval);
extern UB* rmaProcessScanChainOptSeqPrims(UB* pcode, scalar val);
extern void rmaProcessPvcsCcn(UB* pcode, scalar val);
extern void rmaProcessPvcsCcnE(UB* pcode, scalar* val);
extern void rmaProcessPvcsCcnW(UB* pcode, vec32* val);
extern void rmaProcessPvcsCcnV(UB* pcode, vec32* val);
extern void rmaProcessPvcsCcnCompiledS(UB* pcode, U offset, scalar ibnval);
extern void rmaProcessPvcsCcnCompiledV(UB* pcode, U offset, vec32* pval);
extern void schedResetRecoveryDbs(U cedges, EBLK* peblkFirst);
extern UB* rmaEvalUnaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpVOneFanoutCount(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpVLargeFanoutCount(UB* pcode, vec32* pval);
extern UB* rmaEvalAndOpVOneFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalAndOpVLargeFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalAndOpV(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpVOneFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpVLargeFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpV(UB* pcode, vec32* value);
extern UB* rmaEvalTernaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalUnaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalTernaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalUnaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalBinaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalTernaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalTernaryOpS(UB* pcode, scalar val);
extern scalar rmaGetScalarFromWCg(vec32* pval, U index);
extern void rmaSetScalarInWCg(vec32* pval, U index, scalar s);
extern void rmaCountRaptorBits(void* pval, void* pvalPrev, U cbits, U vt);
extern void setHsimFunc(void* ip);
extern void unsetHsimFunc(void* ip);
extern UB* getEvcdStatusByFlagsE(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsV(vec32* pvec32, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsS(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table);
extern UB* getSingleDrvEvcdStatusS(UB value, U fTBDriver);
extern UB* getSingleDrvEvcdStatusE(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getSingleDrvEvcdStatusV(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getEvcdStatusByDrvEvcdStatus(UB* pdrvevcdStatus, U cdrivers, UB* table, U cbits);
extern void evcdCallback(UP pcode, U cbits);
extern UB* getSavedEvcdStatus(void);
extern void saveEvcdStatus(UB*);
extern void mhdlMarkExport(void*, U);
extern void levelInsertQueue(int);
extern void VcsRciRtl(RP pcode);
extern U fLoopDetectMode;
extern int gFLoopDectCodeEna;
extern U fLoopReportRT;
extern void rtSched0LoopDectDumpProcess(void* e, void* rtn, void* PQ);
extern void pushHsimRtnCtxt(void* pcode);
extern void popHsimRtnCtxt();
extern EBLK* loopReportInlinedSched0Wrapper(EBLK *peblk);
extern void loopReportSched0Wrapper(EBLK *peblk, unsigned int sfType, unsigned int fTH, struct dummyq_struct* pq);
extern void loopReportSchedSemiLerWrapper(EBLK *peblk, int sfType);
extern void CallGraphPushNodeAndAddToGraph(UP flatNode, UP instNum, U dummy);
extern void CallGraphPopNode(void);
extern RP elabGetIpTpl(U in);
extern U rmaEvalBitBothEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ1W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQXW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ0W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval01EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval0XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval10EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval1XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalX1EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalX0EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitPosEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitNegEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitBothEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ1E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ0E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitChangeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern void rmaScheduleNbaGate(RP pcode, scalar val);
extern void rmaEvalRtlEdgeLoads(RmaRtlEdgeBlockHdr *phdr, US clkEdge, scalar clkVal, scalar prevClkVal, scalar val4,   scalar prevval4);
extern void rmaEvaluateDynamicGateLoadsCg(RP p, scalar s);
extern void rmaEvaluateFusedWithDynamicGateLoadsCg(RP p, scalar s);
extern void rmaScheduleGatedClockEdgeLoad(UB* p, US* ea, U fNonEdgeLoad, UB* plist, UB* pprevlist, scalar v);
extern void rmaRemoveNonEdgeLoads(UB* pcode);
extern void handlePCBs(UB* p, U i);
extern void markMasterClkOvaLists(U fdbs, RP p);
extern void rmaChildClockPropAfterWrite(UB* p);
extern void rmaSchedChildClockPropAfterWrite(UB* p, UB* pmasterList, UB val);
extern void HDLCosimProcessDUTInputChange(U inputId, void* val);
extern void rmaChangeListForMovedGates(UB clkVal, UB f10Edge, UB* subMasterVal, UB* plist, RP* p, U count);
extern U rmaIsS2State(scalar s);
extern U rmaIsV2State(vec32* pval, U cbits);
extern U rmaIsW2State(vec32* pval, U cbits);
extern U rmaIsE2State(scalar* pval, U cbits);
extern void rmaUpdateRecordFor2State(HsimNodeRecord* record, U f2state);
typedef void (*FuncPtr)();
static inline U asm_bsf (U in)
{
#if defined(linux)
    U out;
    asm ("movl %1, %%eax; bsf %%eax, %%eax; movl %%eax, %0;"
        :"=r"(out)
        :"r"(in)
        :"%eax"
        );
    return out;
#else
    return 0;
#endif
}


#ifdef __cplusplus
extern "C" {
#endif
void  hsG_0 (struct dummyq_struct * I1093, EBLK  * I1094, U  I651);
#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
  }
#endif
#endif /*__DO_RMAHDR_*/

